import { useUserStore } from './user';
import { useDashboradStore } from './dashborad';
import { useAttendanceStore } from './attendance';
import { useStaffStore } from './staff';
import { useDepartmentStore } from './department';
import { useLevelStore } from './level';
import { useAssessmentStore } from './assessment';
import { useSalaryAdjustmentStore } from './salaryAdjustment';
import { useRewardPunishmentStore } from './rewardPunishment';
import { useAttendanceInfoStore } from './attendanceInfo';
import { useCommonStore } from './common';

/**
 * 定义类型接口
 */
export interface AppStoreTypes {
  useUserStore: ReturnType<typeof useUserStore>;
  useDashboradStore: ReturnType<typeof useDashboradStore>;
  useAttendanceStore: ReturnType<typeof useAttendanceStore>;
  useStaffStore: ReturnType<typeof useStaffStore>;
  useDepartmentStore: ReturnType<typeof useDepartmentStore>;
  useLevelStore: ReturnType<typeof useLevelStore>;
  useAssessmentStore: ReturnType<typeof useAssessmentStore>;
  useSalaryAdjustmentStore: ReturnType<typeof useSalaryAdjustmentStore>;
  useRewardPunishmentStore: ReturnType<typeof useRewardPunishmentStore>;
  useAttendanceInfoStore: ReturnType<typeof useAttendanceInfoStore>;
  useCommonStore: ReturnType<typeof useCommonStore>;
}

/**
 * 创建仓库实例
 */
const appStore: AppStoreTypes = {} as AppStoreTypes;

/**
 * 注册app状态库
 */
export const registerStore = () => {
  appStore.useUserStore = useUserStore();
  appStore.useDashboradStore = useDashboradStore();
  appStore.useAttendanceStore = useAttendanceStore();
  appStore.useStaffStore = useStaffStore();
  appStore.useDepartmentStore = useDepartmentStore();
  appStore.useLevelStore = useLevelStore();
  appStore.useAssessmentStore = useAssessmentStore();
  appStore.useSalaryAdjustmentStore = useSalaryAdjustmentStore();
  appStore.useRewardPunishmentStore = useRewardPunishmentStore();
  appStore.useAttendanceInfoStore = useAttendanceInfoStore();
  appStore.useCommonStore = useCommonStore();
};

/**
 * 默认导出
 */
export default appStore;